package karaoke.negocio;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import org.springframework.stereotype.Controller;

import karaoke.dao.LocalDAO;
import karaoke.dao.ProductoDAO;
import karaoke.dao.TrabajadorDAO;
import karaoke.excepcion.DAOExcepcion;
import karaoke.modelo.Local;
import karaoke.modelo.Trabajador;


public class GestionLocal {

	//Gestion Buscar
	public List<Local> buscarPorNombre(String nombre)
			throws DAOExcepcion {
		LocalDAO dao = new LocalDAO();
		TrabajadorDAO daoTrabajador= new TrabajadorDAO();
		List<Local> lstLocal= new ArrayList<Local>();
		lstLocal=dao.listar();
		for(Local local:lstLocal){
			Trabajador trabajador= new Trabajador();
			trabajador=daoTrabajador.obtenerTrabajadorPorId(local.getTrabajador().getIdTrabajador());
			local.setTrabajador(trabajador);
			
		}
		
		return lstLocal;
	}
	
	
	//Gestion Insertar
	public Local insertar(String nombre, String direccion, String telefono, String email, String descripcion, int estado, int idTrabajador)
			throws DAOExcepcion {
		LocalDAO dao = new LocalDAO();

		Local vo = new Local();
		vo.setNombre(nombre);
		vo.setDireccion(direccion);
		vo.setTelefono(telefono);
		vo.setEmail(email);
		vo.setDescripcion(descripcion);
		vo.setEstado(estado);
		
		Trabajador trabajador=new Trabajador();
		trabajador.setIdTrabajador(idTrabajador);
		vo.setTrabajador(trabajador);

		return dao.insertar(vo);
	}

	//Gestion Obtener
	public Local obtener(int idLocal) throws DAOExcepcion {
		LocalDAO dao = new LocalDAO();
		return dao.obtener(idLocal);
	}

	//Gestion Eliminar
	public void eliminar(int idLocal) throws DAOExcepcion {
		LocalDAO dao = new LocalDAO();
		dao.eliminar(idLocal);
	}

	//Actualizar
	public Local actualizar(int idLocal, String nombre, String direccion, String telefono, String email, String descripcion, int estado, int idTrabajador) throws DAOExcepcion {
		LocalDAO dao = new LocalDAO();

		Local vo = new Local();
		vo.setIdLocal(idLocal);
		vo.setNombre(nombre);
		vo.setDireccion(direccion);
		vo.setTelefono(telefono);
		vo.setEmail(email);
		vo.setDescripcion(descripcion);
		vo.setEstado(estado);
		
		Trabajador trabajador=new Trabajador();
		trabajador.setIdTrabajador(idTrabajador);
		vo.setTrabajador(trabajador);

		return dao.actualizar(vo);
	}

	//Gestion Listar
	public Collection<Local> listar() throws DAOExcepcion {
		LocalDAO dao = new LocalDAO();
		return dao.listar();
	}
	
	//ELIMINAR LOGICO/////////////////////////////
	public Local actualizar2(int idLocal, String nombre, int estado) throws DAOExcepcion {
		LocalDAO dao = new LocalDAO();

		Local vo = new Local();
		vo.setIdLocal(idLocal);
		vo.setNombre(nombre);
		vo.setEstado(estado);

		return dao.actualizar(vo);
	}
	//////////////////////////////////////////////////
	
	

}
